from abc import ABC, abstractmethod


class BaseProtocol(ABC):
    def __init__(self):
        pass

    @abstractmethod
    def _build_message(self, *args, **kwargs):
        """
        构建消息
        :param kwargs:
        :return:
        """
        pass

    @abstractmethod
    def _parse_message(self, *args, **kwargs):
        """
        解析消息
        :param kwargs:
        :return:
        """
        pass

    @abstractmethod
    def _send_message(self, *args, **kwargs):
        """
        发送消息
        :param kwargs:
        :return:
        """
        pass

    @abstractmethod
    def _receive_message(self, *args, **kwargs):
        """
        接收消息
        :param kwargs:
        :return:
        """
        pass

    @abstractmethod
    def _check_message(self, *args, **kwargs):
        """
        检查消息
        :param kwargs:
        :return:
        """
        pass

    @abstractmethod
    def _handle_message(self, *args, **kwargs):
        """
        处理消息
        :param kwargs:
        :return:
        """
        pass
